package com.ccn.kotlin_mvvm.ui.fragment

import android.os.Bundle
import androidx.viewpager2.widget.ViewPager2
import com.ccn.jetpack_mvvm.base.viewmodel.BaseViewModel
import com.ccn.kotlin_mvvm.R
import com.ccn.kotlin_mvvm.app.appViewModel
import com.ccn.kotlin_mvvm.app.base.BaseFragment
import com.ccn.kotlin_mvvm.app.ext.init
import com.ccn.kotlin_mvvm.app.ext.initMain
import com.ccn.kotlin_mvvm.app.ext.interceptLongClick
import com.ccn.kotlin_mvvm.app.ext.setUiTheme
import com.ccn.kotlin_mvvm.databinding.FragmentMainBinding
import com.ittianyu.bottomnavigationviewex.BottomNavigationViewEx

class MainFragment : BaseFragment<BaseViewModel, FragmentMainBinding>() {
    lateinit var mainViewPager: ViewPager2
    lateinit var mainBottom: BottomNavigationViewEx

    override fun layoutId(): Int = R.layout.fragment_main

    override fun initView(savedInstanceState: Bundle?) {
        mainViewPager = requireView().findViewById(R.id.mainViewPager)
        mainBottom = requireView().findViewById(R.id.mainBottom)

        //初始换viewpager2
        mainViewPager.initMain(this)
        //初始化 bottomBar
        mainBottom.init {
            when (it) {
                R.id.menu_main -> mainViewPager.setCurrentItem(0, false)
                R.id.menu_project -> mainViewPager.setCurrentItem(1, false)
                R.id.menu_system -> mainViewPager.setCurrentItem(2, false)
                R.id.menu_public -> mainViewPager.setCurrentItem(3, false)
                R.id.menu_me -> mainViewPager.setCurrentItem(4, false)
            }
        }
        mainBottom.interceptLongClick(
            R.id.menu_main,
            R.id.menu_project,
            R.id.menu_system,
            R.id.menu_public,
            R.id.menu_me
        )
    }

    override fun createObserver() {
        appViewModel.appColor.observeInFragment(this) {
            setUiTheme(it, mainBottom)
        }
    }
}